gskpango: Make get_color a bit shorter
authorTimm Bäder <mail@baedert.org>
Fri, 17 Apr 2020 15:16:05 +0000 (17:16 +0200)
committerTimm Bäder <mail@baedert.org>
Tue, 5 May 2020 06:20:09 +0000 (08:20 +0200)
Don't copy from crenderer->fg_color just to override from the local
color again.

gtk/gskpango.c

index 5d2eb3c5270af3d9aaf659289d11789e43d941fb..8f54c9cc944865279a8ee1aa0f945c8e972b3ca7 100644 (file)
@@ -59,30 +59,22 @@ get_color (GskPangoRenderer *crenderer,
            PangoRenderPart   part,
            GdkRGBA          *rgba)
 {
-  PangoColor *color = pango_renderer_get_color ((PangoRenderer *) (crenderer), part);
-  guint16 a = pango_renderer_get_alpha ((PangoRenderer *) (crenderer), part);
-  gdouble red, green, blue, alpha;
-
-  red = crenderer->fg_color.red;
-  green = crenderer->fg_color.green;
-  blue = crenderer->fg_color.blue;
-  alpha = crenderer->fg_color.alpha;
+  const PangoColor *color = pango_renderer_get_color ((PangoRenderer *) (crenderer), part);
+  const guint16 a = pango_renderer_get_alpha ((PangoRenderer *) (crenderer), part);
 
   if (color)
     {
-      red = color->red / 65535.;
-      green = color->green / 65535.;
-      blue = color->blue / 65535.;
-      alpha = 1.;
+      rgba->red = color->red / 65535.;
+      rgba->green = color->green / 65535.;
+      rgba->blue = color->blue / 65535.;
+      rgba->alpha = a ? a  / 65535. : crenderer->fg_color.alpha;
+    }
+  else
+    {
+      *rgba = crenderer->fg_color;
+      if (a)
+        rgba->alpha = a / 65535.;
     }
-
-  if (a)
-    alpha = a / 65535.;
-
-  rgba->red = red;
-  rgba->green = green;
-  rgba->blue = blue;
-  rgba->alpha = alpha;
 }
 
 static void